home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 1
/
Cream of the Crop 1.iso
/
PROGRAM
/
TDE200.ARJ
/
TDE.DOC
< prev
next >
Wrap
Text File
|
1992-06-05
|
53KB
|
1,198 lines
tde, the Thomson-Davis Editor
Version 2.0
June 5, 1992
Frank Davis
Description:
tde is a simple, public domain, multi-file/multi-window text editor
written for IBM PCs and close compatibles. It is suitable for editing
batch files, text files, and various computer language source code
files. The only limit on the number and size of files that tde can
handle is the amount of conventional memory. Likewise, the only limit
on the number of windows is the amount of conventional memory. There
is no preset maximum number of files or windows that may be open at any
one time.
Introduction:
I work with data files, computer source code, and output files quite a
bit. Most of the features in tde are related, in some way, to handling
those types of files. The various window and cursor commands in tde
are really nice for comparing and editing source code or output files.
A good collection of block commands is available for use on source code
and formatted data files. For what little word processing I do, tde
has a few simple commands for formatting text and paragraphs. In
short, tde contains most of the features that I use most of the time in
an easy to use, easy to remember, and easy to configure editor. I hope
you find tde as easy to use for most of your routine editing as me.
Usage:
At the command line type:
tde [file name(s)]
For example:
tde
tde foo.bar
tde c:\c60\tde\main.c
tde *.c \qc25\tde\*.h
tde foo.bar foobar f* foo.* f??b??
If you don't enter a file name at the command line, tde will prompt you
for a file name. If the file does not exist, tde starts out with an
empty file with the file name you just entered.
tde will handle files as large 465k. If you try to edit a file larger
than 465k, only the first portion of the file is loaded into tde. With
DOS 5.0, you can edit files as large as 515k if you load DOS high. tde
will handle lines as long as 1040 characters. Only the first 1040
characters of long lines are handled.
What's new:
New features in tde 2.0 include :
DateTimeStamp = ^2 or Control-@ sign
SortBoxBlock, ascending or descending = @S
ToggleSmartTabs = @Tab
Dynamic left margin for writers = @V
Pause, useful with macros = ^P
Recursive macros
Support for Control-Break to stop recursive macros,
sorting, search/replacing, some block operations,
formatting text or paragraph, and printing.
Support for lines as long as 1040 characters.
Improved undo buffer management. There is now room for
the last 10 by 1040 or 130 by 80 deleted lines.
Gathered all prompts into one header file to aid translation
of prompts and documentation into other languages.
Configuration file, option 6 in tdecfg.exe.
The date-time stamp was added to tde because some users talk with field
units over the phone and the event needs to be date and time stamped.
Users may customize the date to local preferences, eg MM-DD-YY or
DD-MM-YY. The time stamp may use either 12 hour or 24 hour form.
Every once in a while, I need to sort data, names, etc..., in some of my
files. The SortBoxBlock function was added to sort lines according to
the keys in a box block. The keys may be sorted ascending or
descending, while the IGNORE/MATCH toggle determines whether case is
significant. To sort multiple columns, start the sort with the least
significant key first.
To help users construct tables and formatted data files, a Smart Tab
toggle was added. A smart tab is determined by looking for the first
previous non-blank line above the cursor and then searching for the
beginning of the next word at the column of the cursor. Smart tabs are
useful for building tables and formatted data sets. After giving smart
tabs a try my ownself, I hardly ever use fixed tabs any more.
As more people begin to use tde as a simple word processor, a new
feature was added to help create simple documents. The left margin may
now be determined by the indentation of the current line when in Dynamic
Wrap mode. This comes in really handy for those who need special
paragraph indentation. Users don't have to keep setting the left margin
every time the left margin is changed; tde sets the margin automatically
to the indentation of the current line.
A few features were added to the macro functions. A pause function was
added, so users can watch a recursive macro execute and stop the macro
at their convenience. When a macro is paused, press any key to continue
or press ESC to halt the macro. Now, recursive macros may be defined.
I often need to delete certain lines from a file until the eof is
reached. See the Macro section later in this file for info on creating
a really neat recursive macro. Even if you can't stand tde, just try
the neat macro. It's the most unique macro I've ever seen.
I also wrote a handler for the Control-Break interrupt, 0x1B. On IBM
compatible PCs, the Control-Break key generates an interrupt via
hardware. By writing a Control-Break interrupt handler, a user can
immediately gain control of a run-a-way recursive macro, printing job,
most box block operations, expanding tabs, trimming space from line
blocks, formatting a paragraph or text, search/replace, or a sort
operation. Although one may trap Control-C, which is a software
generated interrupt, there is no telling when the operating system will
turn control over to a Control-C handler. One may gain immediate
control with the Control-Break key, however.
The undo-buffer space and management was greatly enhanced. There is now
room for over 10k of deleted text in the buffer. Users may now get back
entire functions that may have been deleted. There is room for 130 by
80 or 10 by 1040 character lines in the new undelete buffer.
All of the prompts in tde were gathered into one header file to aid the
translation of documentation as well as the user prompts into other
languages. Pierre Jelenc, pcj1@cunixf.cc.columbia.edu and a member of
the Foreign Language Education Forum (FLEFO) on CompuServe, has
translated the documentation and has created configuration files for
several languages. If you need a non-English version of tde, contact
Pierre to find out if he has a version of tde for you.
A configuration file was added so that users may define all function
keys, modes, and colors from a configuration file. Users may also
define macros in the configuration file. Those who need to assign ASCII
and Extended ASCII character to unused function keys will find this
extremely useful. Some alphabets need letters with all kinds of accent
marks.
New features in tde 1.5 include :
Ruler = @R
Block trim trailing = @T
User defined macros:
Record macro = @F3
Save macros to file = #F1
Load macros from file = #F3
Clear macro buffer = ^ESC
Critical error handler
If by accident you forget to put a diskette in a floppy drive and try to
save a file or if you forget to turn on the printer before printing a
block or file, a critical error occurs. That kind of error is the
infamous Abort, Retry, Ignore thing. A routine was written to give some
information on the kind and the location of those errors when they
occur. The tde critical error handler gives you all kinds of info and
then prompts you for a response. The timeout for critical errors varies
quite a bit. Some timeouts may take a couple of minutes.
When I "work" at the USDA, I often need to create or massage formatted
data files. Also, a lot of engineers and scientists at the USDA program
in FORTRAN and the source code needs to be in a certain format. When
working with those types of files, it is really useful to have a ruler
that explicitly shows which column the cursor is in. The new ruler in
tde shows margins, column numbers, and a column pointer.
New features in tde 1.4 include :
Split screen vertically = F8
Number box block = Alt+N
Directory list = Alt+F1
Also added in tdecfg was a choice of cursor styles and a switch for .bak
files. Both of those options are in the mode section of tdecfg.
<CR><LF> or <LF> at eol
The functions that write to files were expanded to allow you to choose
whether you want to write a <CR><LF> or just a <LF> at the end of line.
Some programs look for just the <LF> at the eol while others want the
<CR><LF> pair at the eol. tde has no trouble reading either style but
allows you to specify the output style. You may change the style by
pressing the ToggleCRLF function key or by using tdecfg to set the
default. Here's a little diagram that may help explain the new
functions better than I can write.
Output
Input tde's internal representation Toggle
files ┌────────────────────────────┐ files
with │ tde will read files with │ with
<CR><LF> ====>│ lines that terminate in │ =====> <CR><LF>
at eol │ either <CR><LF> or <LF>. │ at eol
│ │
│ │
files │ Internally, all lines end │ files
with │ with the <LF> character. │ with
<LF> =====>│ │ =====> <LF>
at eol └────────────────────────────┘ at eol
Editor fields and information lines:
Sample tde screen
┌─── File number - each window opened to same file has same number
│ ┌─── Window letter
│ │
│ │ ┌─── Dirty file indicater - asterisk
│ │ │ ┌─── File name
│ │ │ │ ┌──── File attributes
│ │ │ │ │ ┌──── Total number of lines in file
│ │ │ │ │ │ ┌─── line:column
┌──────────────────────────────────────────────────────────────┐
│ The first line on the screen contains file information │
├──────────────────────────────────────────────────────────────┤
│........1..... Optional ruler line ......5........6..│
├──────────────────────────────────────────────────────────────┤
│ │
│ │
│ File area │
│ │
│ │
│ │
├──────────────────────────────────────────────────────────────┤
│ Editor modes and information │
└──────────────────────────────────────────────────────────────┘
Insert
│ │ │ │ │ │ │ │ │ │ │ └─ Overwrite
│ │ │ │ │ │ │ │ │ │ └───── ^Z at eof?
│ │ │ │ │ │ │ │ │ └───── trim trailing
│ │ │ │ │ │ │ │ │ space at eol, T = TRUE
│ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ └───── CRLF or LF at eol?
│ │ │ │ │ │ │ └───── word wrap indicator
│ │ │ │ │ │ └───── Sync cursor in all windows?
│ │ │ │ │ └───── Ignore / Match search case?
│ │ │ │ └───── Indent mode?
│ │ │ └───── Smart tab mode?
│ │ └───── Available memory for editing files
│ └───── Total number of windows, including hidden windows
└───── Total number of open files
Multiple keys:
I use the following abbreviated key definitions throughout this file:
^ = Control # = Shift @ = Alt
For example, ^F5 means press and hold the Control key and then press F5
while holding down the Control key.
Cursor movement:
101 Keyboard overview
Cursor keys Keypad keys
┌─────┬─────┬─────┐ ┌───────┬───────┬───────┬───────┐
│ Ins │Home │PgUp │ │NumLock│Grey / │Grey * │Grey - │
├─────┼─────┼─────┤ ├───────┼───────┼───────┼───────┤
│ Del │ End │PgDn │ │ Home │ Up │ Pg Up │ Grey │
└─────┴─────┴─────┘ ├───────┼───────┼───────┤ + │
│ Left │Center │ Right │ │
┌─────┐ ├───────┼───────┼───────┼───────┤
│ Up │ │ End │ Down │ Pg Dn │ Grey │
┌─────┼─────┼─────┐ ├───────┴───────┼───────┤ │
│Left │Down │Right│ │ Ins │ Del │ Enter │
└─────┴─────┴─────┘ └───────────────┴───────┴───────┘
If you like using these grey With Num Lock off,
cursor keys, these function you can probably guess most
assignments are for you. of these function assignments.
Grey cursor keys Keypad keys
Up - move cursor up Home - toggle col 1 & beg of line
Down - move cursor down ^Home - first line in window
Left - move cursor left Pg Up - page up
Right - move cursor right ^Pg Up - goto first page in file
^Up - scroll cursor up Center - move to center of window
^Down - scroll cursor down ^Center - line to center of window
^Left - cursor to previous word End - last character in line
^Right - cursor to next word ^End - last line in window
@Up - scroll text up Pg Dn - page down
@Down - scroll text down ^Pg Dn - goto last page in file
@Left - horizontal char left Ins - toggle insert mode
@Right - horizontal char right Del - delete character
@PgUp - horizontal page left ^Del - stream delete character
@PgDn - horizontal page right Grey - - scroll screen up
^#Left - horizontal char left Grey + - scroll screen down
^#Right - horizontal char right ^Grey - - fixed scroll screen up
^Grey + - fixed scroll screen down
Enter - Insert line and move down
#Enter - 1st char in next line
Note: The Alt+Cursor keys are not ^Enter - column 1 in next line
available on 83/84 key keyboards.
Pressing the Alt + a number key on
the keypad generates a character code
and not a cursor movement command.
FYI, the Alt+keypad is the method for
entering any ASCII or Extended ASCII
character into the text file.
Function Keys:
I tried to use some logical order when I assigned functions to the
function keys. I use a 101 keyboard most of the time, so it should be
easy to see the logical function grouping with it. The function keys
on a 101 keyboard are placed along the top of the keyboard. Functions
are arranged as follows:
Help File Find & Window
Functions Search/Replace Commands
F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12
F1 = Instantaneous Help
@F1 = Directory List
List the contents of a directory or matching files. At the
prompt, press enter to list all files in the current directory or
enter any valid subdirectory name, file name, or wild card
characters. You don't have to put a *.* at the end of a
subdirectory name; the directory list function adds those wild
card characters to subdirectory names as a default. A '\' is
added to the end of subdirectory names in the file list. To list
files in other directories, just move the cursor to the desired
subdirectory name and press enter. When you see ..\ in the
directory list, the double periods represent the parent of the
current directory. The .\ represents the current directory. You
may move up and down the directory tree by selecting the parent or
childrens of the current directory.
File Functions:
F2 = Save file
Saves all changes made to file. Existing file is overwritten by
the new file. It does not prompt for a new file name -
automatically assumes you want to overwrite the old file.
F3 = Quit file
Abandons any changes made in the file and closes or kicks the file
out of the current window. If you are editing multiple files or
have multiple windows, tde searches for any invisible files to
display in the current window. If no invisible windows are found,
tde combines windows. If this is the only file being edited, F3
quits tde. If you made any changes to the file, it asks you if
you want to abandon them. You can create an invisible window when
you load in a file over the current file. Nothing happens to the
invisible file or window - you just can't see it.
When I added vertical windows, this routine became a LOT more
complicated. To keep things reasonably sane, let's only close
windows that have three common edges, eg.
┌──────┬──────────┐
│ │ no │
│ ├─────┬────┤
│ │yes1 │yes1│
│ no ├─────┴────┤
│ │ yes2 │
│ ├──────────┤
│ │ yes2 │
└──────┴──────────┘
Windows with 'no' cannot be closed. Windows with 'yes' can be
combined with windows that have the same yes number.
F4 = File (save and quit)
This function is a combination of Save and Quit (F2 & F3 above).
#F2 = Save as
If you don't want to overwrite the original file but you want to
save the contents of the current file, you may save the file under
a different file name. This function prompts you for a file name
to save the changes (press escape to abort).
#F4 = Edit new file
To bring another file into the editor, use this function. It
loads the file into the current window and previous window becomes
invisible. You can even load several copies of the same file. I
like this because I often need to refer back to the original
unchanged file on disk. When I make a booboo in file, which is
quite often, I don't necessarily want to quit and start over; I
just want to get back the part that I messed up. It is really
easy to mark the orginal text in a block and copy it to place
where I made a booboo. Each time a file is loaded into tde, it is
treated as a different file.
@F2 = Set file attributes
Change the attributes of a file. Attributes are: A = Archive,
S = System, H = Hidden, R = Read-Only. You can change the
attributes of a file so that read-only files can be edited. To
edit a read-only file: 1) edit the file, 2) change the file
attributes to archive, 3) save the changes made in the file, 4)
change the file attributes back to read-only.
@F4 = Edit next file
If you type multiple file names or type wildcard characters on the
command line, press this key to bring in the next file or the next
matching file into the editor. You may press this key at any
time. When I use this feature, I usually split the screen and
load the next file into a window. This feature is useful when you
need to look in several files for a piece of code or if you know
that you are going to edit several files at the same time.
Macros:
@F3 = Macro record
This key toggles macro record off and on. A flashing "Recording"
is displayed in the lite bar, so it shouldn't be too difficult to
tell when record is on. This function assigns a keystroke or a
series of keystrokes to an unused function key. Keystrokes are
played back for some prompts. Prompts that require the user to
input a name or pattern are played back. Prompts that require the
user to enter a choice, "Overwrite existing file (y/n)?" for
example, are not played back.
There is room for 1024 keystrokes in the macro buffer. There are
no restrictions on the length of a single macro. If you want, you
may define one macro that contains 1024 keystrokes. When tde
terminates, all macros definitions disappear. Macro definitions
are temporary. If you want to reuse macros that are defined
during an editing session, they need to be saved before you exit
tde.
Recursive Macros
Recursive macros are supported. Only one level of recursion is
supported in tde. Here's a simple example of a recursive macro:
Alt-F3 = turn macro record on
Alt-5 = assign the recording to Alt-5
Down = move cursor down a line
Alt-5 = call the macro we just defined
Alt-F3 = turn macro record off
Enter this macro and press Alt-5 to see what a recursive macro
does. Recursive macros repeatedly execute themselves until an
error condition occurs, which usually happens when the end of file
is reached. I often use recursive macros to delete certain lines
in a file or to rearrange the fields of a formatted data file.
Each editor function in tde returns a code to the macro processor
that indicates whether or not an error occured. Here are some
conditions that generate an error: attempting to move the cursor
past the end of file or behind the start of the file, trying to
add too many characters in a line, attempting block operations
with no marked block, etc...
One interesting phenomenon about recursive macros is that a macro
can be defined that never terminates. The simplest
non-terminating macro definition in tde is:
Alt-F3 = turn macro record on
Alt-7 = assign the recording to Alt-7
Alt-7 = call the macro we just defined
Alt-F3 = turn macro record off
This a+7 macro carries out no instructions. The only thing this
macro does is call itself. In a perfect world, this macro will
execute forever. There are lots of ways to create non-terminating
recursive macros. Be creative and try creating a few non-
terminating recursive macros yourself. With several different
sizes and shapes of horizontal and vertical windows on the screen
and with cursor sync toggled on, you can create some really neat
macros using cursor movement keys. If you get tired of waiting
for forever, just press Control-Break to stop any macro.
A Really Neat Recursive Macro
Here's a really neat recursive macro that you might try with
cursor sync turned off. Edit a fairly large file, one with at
least a 1000 lines, and move the cursor to line 500 or the half
way point. Then, split the screen into several vertical windows
with about 15 columns in each window , e.g.:
┌───────┬───────┬────────┬───────┬───────┐
│ │ │ │ │ │
│ │ │ │ │ │
│ │ │ │ │ │
│ │ │ start │ │ │
│ │ │ │ │ │
│ │ │ │ │ │
│ │ │ │ │ │
└───────┴───────┴────────┴───────┴───────┘
With cursor sync turned off and macro record turned on, define a
macro that 1) moves the cursor down in one window, 2) goes to the
next window and moves the cursor up, 3) goes to the next window
and moves the cursor down, 4) when the cursor finally makes it
back to the starting window, make the macro recursive. Suppose
the cursor is in the window labeled "start" in the sample screen
above. Here's the way the keystrokes in this macro would be
recorded:
Alt-F3 = turn macro record on
Alt-8 = assign this macro to Alt-8
Down = move cursor down in "start" window
F10 = next window
Up = move cursor up
F10 = next window
Down = move cursor down
F10 = next window
Down = move cursor down
F10 = next window
Up = move cursor up
F10 = next window - cursor is now in "start"
Alt-8 = call the macro just defined. it's now recursive.
Alt-F3 = turn macro record off
Press Alt-8 and watch a really neat recursive macro.
#F1 = Save macro file
Saves all macro definitions to a file. tde prompts for the macro
file name.
#F3 = Load macro file
Prompts for a search pattern or file name. I can never remember
macro file or path names, so this function uses a file pick list.
^ESC = Clear macros
Resets or clears all macros.
^P = Pause
When this function is part of a macro, press any key to continue
the macro or press ESC to halt or break the macro.
Find and Search/Replace:
^F5 = Toggle search case
You can toggle the case of the search flag at any time, even
after you define the search pattern.
#F5 = find forward
To define the search pattern, use this function. It prompts you
for the search pattern. The pattern is defined, across files,
until changed.
#F6 = find backward
Same as find forward except search backward in file.
F5 = Repeat find forward
Once the search pattern has been defined (Shift F5 or Shift F6),
you can press this key at any time in any file to find the next
occurrence of pattern. I decided to use two sets of functions to
perform searches. Once I found a pattern, I might do some editing
and then find the next occurrence. I hate to define the search
pattern over and over or set the search direction over and over.
This function does a wrap search - when it reaches the eof it
starts over at the beginning of the file.
F6 = Repeat find backward
Like repeat find forward, you can press this key at anytime once
the search pattern has been defined.
@F5 = Repeat find forward2
Like F5 except the cursor is not repositioned to the middle of the
screen. This function is useful when working with data files.
@F6 = Repeat find backward2
Like F6 except the cursor is not repositioned to the middle of the
screen.
#F7 = Search/Replace forward
This function prompts you for the search pattern and the
replacement text. If you want to match the search case, remember
to toggle the search flag, which can be done at any time. You can
either do prompt or no prompt replacing. Regardless of prompt or
no prompt replacing, this function actually moves the cursor to
the pattern and displays it on the screen and replaces the text.
If you are using tde on a slow machine, you can see the
search/replace taking place. I implemented the function this way
because I just like to see what the search/replace function is
doing. Press Control-Break to stop no prompt replacing.
#F8 = Search/Replace backward
Same as search/replace forward except backwards.
Window Functions:
F8 = Split window vertically
Splits the screen at the current cursor location. The current
file is displayed in multiple windows. Changes to a file are
echoed in all windows opened to the same copy of that file. You
can also see any marked blocks in the same copy of the file in
different windows. There has to be at least 15 columns in any
window, so the number of visible windows is limited by the display
screen.
F9 = Split window horizontally
Splits the screen at the current cursor location. There has to be
at least 1 text line in any window, so the number of visible
windows is limited by the display screen.
#F9 = Resize window
Sometimes there is a need to concentrate on the contents of one
window. Use the up and down arrow keys to adjust the current
window to desired size. Changing the size of the top window is
not allowed.
^F9 = Zoom window
Makes the current window fill the whole screen. All windows
except the current window become invisible.
F10 = Next window
If more than one window is displayed, you can press one key to
move to the next window.
#F10 = Previous window
Move to previous window - opposite of next window.
^F10 = Next Hidden Window
Displays "hidden" or "invisible" windows in the same place as the
current window. The current window then becomes invisible.
Block Commands:
Block operations can be done within or between files. Operations on
line blocks that move text are carried out on the line immediately
below the cursor. Operations on box or stream blocks that move text
begin at the column of the cursor. Press Control-Break to stop most Box
operations. Nearly all Line and Stream operations happen so fast that
you can't stop them once they are started.
@B - Mark Box Block
This key is used to mark both the beginning and ending corner of
a box block.
@L - Mark Line Block
This key is similar to the operation of the box block, but entire
lines are marked.
@X - Mark Stream Block
All the text between the beginning and ending column, sorta like a
stream of characters, is marked. Useful with sentences.
@U - Unmark Block
If you make a booboo when marking blocks, press @U to unmark the
block and start over. After certain block operations, the block
may remain marked.
@G - Group Delete block
Sorta self explanatory. This function deletes the text in the
marked block.
@M - Move block
Move the cursor to the desired location and press @M to move the
marked block. In line mode, the text is moved to the line
immediately below the cursor. In box and stream mode, the block
is moved to the column of the cursor.
@C - Copy block
With line blocks, the block is copied to the line below the
cursor. With box and stream blocks, the block is copied
beginning at the column of the cursor. If you try to copy a
Line block within itself, the block copy starts at the first
line immediately after the marked block.
@K - Kopy block
Same as copy block except block stays marked. It's sorta like a
poor man's cut-and-paste buffer.
@O - Overlay block
You can only overlay Box blocks. The original block stays marked
after the operation.
@F - Fill box block
Fills the marked Box block with character. This function is
useful for filling in a column of periods for tables and such.
@N - Number box block
tde prompts you for the starting number, the increment, and
whether to left or right justify the numbers. tde only handles
integers - no floating point numbers are allowed. I felt that
there were too many things involved in real numbers, eg. number
of significant places to left of decimal, to right of decimal,
exponents, engineering form, scientific form, etc.... If you
want real numbers, just use a combination of the number box
and fill box functions. Use the fill box function to make a
column of decimals and the number box function to number the left
and right side of the decimal.
@P - Print block
Prints the block to the PRN device. I haven't tried redirecting
the PRN, but it should work. This function prompts for block or
file to print. Press Control-Break to stop printing.
@S - Sort box block
Lines are sorted, ascending or descending, using the contents of
the box block as the sort keys. The Ignore/Match toggle
determines whether case of the keys is significant. To sort
multiple columns, sort the least significant column first. Press
Control-Break to stop.
@W - Write block to file
Writes the marked block to a file. tde prompts for the file
name.
@E - Block expand tabs
Expands the tabs in the marked block, which must be a LINE block,
using the current tab setting. Press Control-Break to stop.
@T - Block trim trailing
Trims trailing space, if any, at the end of each line in a LINE
block. Press Control-Break to stop.
@< - Block upper case
Convert all lower case characters in the block to upper case.
@> - Block lower case
Convert all upper case characters in the block to lower case.
@? - Block strip high bit
Strip the high bit off all characters in the block. This function
is useful when editing files produced by WordStar.
Word Processing Commands:
@V - toggle word wrap
Toggle word wrap between off, Fixed Wrap, and Dynamic Wrap. In
Fixed Wrap mode, the left margin is explicitly determined by the
left margin setting. In Dynamic Wrap mode, the left margin is
determined by the indentation of the current line. Writers may
find the Dynamic Wrap mode easier to use. If the cursor is
somewhere in the line, words are pushed to the next line.
In tde, other than margins, word wrap and format paragraph or
format text have nothing to do with each other. Word wrap is
used to push characters or the cursor to the next line when the
right margin is violated. Format paragraph and format text can
be used at any time - they do not depend on the state of the
WordWrap flag.
^F6 - Set Left margin
May be set to any column equal to or greater than 1 and less than
the right margin.
^F7 - Set Right margin
May be set to any column greater than the left margin and less
than the maximum line length or 1040.
^F8 - Set Paragraph margin
The paragraph margin may be set to any column less than the right
margin.
@F7 - format paragraph
Text is formatted from the beginning of the paragraph according
to the current left, right, and paragraph margins. If the cursor
is not on the beginning line of a paragraph, tde searches for
start of the paragraph and formatting starts there. The entire
paragraph is formatted according to the margins.
^B - Format Text
Text is formatted from the cursor onward. This function does not
search for the beginning of the paragraph to start the format.
@F8 - Left justify
Beginning of current line is adjusted to start at left margin
@F9 - Right justify
End of current line is adjusted so it ends at the right margin
@F10 - Center justify
Current line is centered between the left and right margins.
Other keys:
Enter
Insert a newline at the cursor. If the cursor is in the middle of
a line, the line is split at the cursor. Indentation is matched
if the editor is in the Indent mode.
#Enter
Move the cursor down a line. The cursor is placed on the first
non-blank character in the next line. No lines are added to the
file.
^Enter
Move the cursor down a line. The cursor is placed on column 1 in
the next line. No lines are added to the file.
Up (arrow)
Move cursor up.
Down (arrow)
Move cursor down.
Left (arrow)
Move cursor left.
Right (arrow)
Move cursor right.
Home
Toggles between the first non-blank character and column zero.
End
Move cursor to the end of line character.
Page Up
Move cursor up one page.
Page Down
Move cursor down one page.
^Right
Move cursor one word right.
^Left
Move cursor one word left.
^#Right (Control+Shift+Right)
Pan the screen one character to the right.
^#Left (Control+Shift+Left)
Pan the screen one character to the left.
^Home
Move cursor to first line on screen.
^End
Move cursor to last line on screen.
^Page Up
Move cursor to first page in file.
^Page Down
Move cursor to last page in file.
Zip to line
Move to line number. tde prompts for line number. Press Escape
to abort.
Center
The cursor is moved to the center of the current window.
^Center
The line the cursor is on is moved to the center of the current
window.
Grey - (on the key pad) or
^Down
Scroll window up with cursor staying on same line in file.
Grey + (on the key pad) or
^Up
Scroll window down with cursor staying on same line in file.
@Grey Up (the arrow in the cursor/control cluster) or
^Grey - (grey - on keypad)
Cursor stays on same line of the screen as the file scrolls up.
@Grey Down (the arrow in the cursor/control cluster) or
^Grey + (grey + on keypad)
Cursor stays on same line of the screen as the file scrolls down.
@Grey PgUp
Horizontal page left.
@Grey PgDn
Horizontal page right.
ESC - undo line
Get back the original unchanged line. When cursor is moved off a
line, all changes to the file are made and there is no way to get
back the contents of a line.
Del
Delete the character, if any, under the cursor.
^Del
Delete the characters in the file as if they were a stream.
Lines will be joined at the cursor and eventually every
character in the file may be deleted.
Backspace
Delete the character to the left of the cursor and move left. If
the cursor is on the first column of a line, the current line is
joined with the line above. If in indent mode and the cursor is
on the first non-blank character, tde matches the indentation of
the previous line(s).
Tab
If in insert mode, insert the appropriate number of spaces for a
tab and move the cursor left. If in overwrite mode, just move
the cursor left w/o inserting text.
@=
Duplicates the current line.
@-
Deletes the text from the cursor to the end of line.
^Y
Deletes current line, cursor does not move.
@D
Deletes current line, cursor does not move (exactly same as ^Y).
@Y or ^U
Undelete the most recently deleted line. The undelete buffer has
room for 10k of deleted text. If more than 10k of text is
deleted, the oldest line(s) are pushed out before the new one is
added. You may press ^U repeatedly to undelete all lines in the
buffer.
Deleted lines from line delete, delete to end of line, word
delete, join line, and backspace are stored in the undelete
buffer.
@A
Add a blank line below cursor.
^_ or Control underline
Split line at column of cursor. If in indent mode, the split line
is autoindented.
@J
Join the current line with the line below.
^Tab
Set tabs.
^]
Paren Balance.
@1 - @3
Set a file marker. Each file may have up to 3 markers.
#@1 - #@3 (Shift+Alt+1 thru Shift+Alt+3)
Goto a previously defined file marker.
^@ (Control+At sign -- not Control+Alt. Control+At sign is the first
character in the ASCII character set, Control+2 on many keyboards)
Writes the current system date and time at the column of the
cursor. Use tdecfg to set the desired year and time format.
Control-Break
In tde, Control-Break will stop printing, sorting,
search/replacing, and recursive macros.
Toggles:
^F1
Toggle cursor sync. Only cursor movement commands are synced.
Commands that change text are not synced.
^F2
Toggle eol display. A special character is displayed in the
column of the actual new line.
^F3
Toggle writing <CR><LF> or <LF> at end of line. tde will read a
text file with lines that end in either method; however, you may
want to write the file in a different method. I think *nix
systems only want a <LF> of the end of line.
^F4
Toggle trimming trailing space at the end of line. A 'T' is
displayed in the bottom right of the mode line to indicate
trailing space is trimmed.
^F5 = Toggle search or sort case
You can toggle the case flag at any time, even after you define
the search pattern.
Ins
Toggle between insert and overwrite mode.
@Tab
Toggle smart tab mode. Smart tab positions are determined by
looking for the first, previous, non-blank line above the cursor
and then positioning the cursor at the begining of the next or
previous word from the column of the cursor. It's useful for
building tables and formatted data files.
@I
Toggle between indent and no indent mode. In indent mode, tde
searches for the first non-blank character on previous lines and
places the cursor on that column when a carriage return is
pressed. When backspacing in indent mode, tde lines up the
indentation with the first non-blank character of the previous
line(s).
@R - Toggle ruler
Toggle display of ruler in all visible windows.
@V - toggle word wrap
Toggle word wrap between Off, Fixed Wrap, and Dynamic Wrap.
@Z
Toggle writing Control Z at the end of file. Some programs may
misbehave if a Control Z is not at the end of the file.
WordStar style commands:
A limited number of WordStar style commands are implemented in tde. I
have no plans, whatsoever, to implement any additional WordStar style
commands. This implementation may not correspond exactly to the
WordStar command convention. WordStar is a trademark of WordStar
International.
^A - word left
^B - format text
^C - screen down
^D - character right
^E - line up
^F - word right
^G - delete character
^H - backspace
^I - tab
^J - help
^K - n/a
^L - n/a
^M - return (carriage control, enter)
^N - add line below cursor
^O - n/a
^P - n/a
^Q - n/a
^R - page up
^S - character left
^T - word delete
^U - undelete line
^V - toggle insert mode
^W - scroll up line
^X - line down
^Y - delete line
^Z - scroll line down
^\ - redraw screen
Editor command summary:
Function Description
Help Display instantaneous help screen
Rturn Insert newline and move down while matching indentation
NextLine Move cursor to first character in next line
BegNextLine Move cursor to first column in next line
LineDown Move cursor down a line
LineUp Move cursor up a line
CharRight Move cursor right one character
CharLeft Move cursor left one character
ScrollRight Pan screen one character right
ScrollLeft Pan screen one character left
WordRight Move cursor to beginning of next word
WordLeft Move cursor to beginning of previous word
ScreenDown Page screen down
ScreenUp Page screen up
EndOfFile Move to the last page in a file
TopOfFile Move to the first page in a file
BotOfScreen Move cursor to bottom of current window
TopOfScreen Move cursor to top of current window
EndOfLine Move cursor to end of line
BegOfLine Move cursor to first character in line or column 1
JumpToLine Move cursor to line entered by user
CenterWindow Move cursor to center of current window
CenterLine Move current line and cursor to center of window
HorizontalScreenRight Page screen right
HorizontalScreenLeft Page screen left
ScrollDnLine Scroll screen down 1 line and cursor moves with line
ScrollUpLine Scroll screen up 1 line and cursor moves with line
FixedScrollUp Scroll screen up 1 line and cursor does not move
FixedScrollDn Scroll screen down 1 line and cursor does not move
ToggleOverWrite Toggle insert/overwrite mode and cursor changes shape
ToggleSmartTabs Toggle smart tab mode on/off
ToggleIndent Toggle indent mode on/off
ToggleWordWrap Toggle word wrap on/off
ToggleCRLF Toggle CRLF/LF at eol when writing file to disk
ToggleTrailing Toggle trim trailing space at eol
ToggleZ Toggle writing ^Z at eof
ToggleEol Toggle display of eol character
ToggleSync Toggle cursor sync
ToggleRuler Toggle ruler display
SetTabs Set file tabs
SetLeftMargin Set left margin
SetRightMargin Set right margin
SetParagraphMargin Set paragraph margin
FormatParagraph Format the entire paragraph according to margins
FormatText Format from the cursor line to end of paragraph
LeftJustify Left justify a line
RightJustify Right justify a line
CenterJustify Center justify a line
Tab Move cursor to next tab and add spaces if insert mode
BackTab Move cursor to previous tab and delete if insert mode
ParenBalance Match (), {}, or [] under the cursor
BackSpace Delete previous character
DeleteChar Delete current character, but do not join lines
StreamDeleteChar Delete current character and join lines if at eol
DeleteLine Delete current line
DelEndOfLine Delete from the cursor to the eol
WordDelete Delete from the cursor to the end of word
AddLine Insert a blank line under the cursor
SplitLine Split the current line at the cursor
JoinLine Join next line with current line at the cursor
DuplicateLine Duplicate the current line
AbortCommand Abort editor functions
UndoLine Get back the original contents of a line
UndoDelete Get back up to the last 10k of deleted text
ToggleSearchCase Toggle match/ignore search case or sort case
FindForward Prompt for pattern and search forward
FindBackward Prompt for pattern and search backward
RepeatFindForward1 Repeat find forward and adjust cursor if needed
RepeatFindForward2 Repeat find forward and do not adjust cursor
RepeatFindBackward1 Repeat find backward and adjust cursor if needed
RepeatFindBackward2 Repeat find backward and do not adjust cursor
ReplaceForward Search and replace pattern forward
ReplaceBackward Search and replace pattern backward
MarkBox Mark start or end of a box block
MarkLine Mark start or end of a line block
MarkStream Mark start or end of a stream block
UnMarkBlock Unmark a block
FillBlock Fill a box block with prompted character
NumberBlock Fill a box block with starting number using increment
CopyBlock Copy a block to cursor and unmark block
KopyBlock Copy a block to cursor and leave block marked
MoveBlock Move a block to cursor and unmark block
OverlayBlock Overlay a box block
DeleteBlock Delete a block
BlockToFile Write a marked block to a file
PrintBlock Print a block or file
BlockExpandTabs Expand tabs in marked LINE block using tab setting
BlockTrimTrailing Trim trailing space from all lines in a line block
BlockUpperCase Convert all lower case in block to upper case
BlockLowerCase Convert all upper case in block to lower case
BlockStripHiBit Strip the high bit from all characters in block
SortBoxBlock Sort line according to keys in box block
DateTimeStamp Insert system time and date
EditFile Editor prompts for file to edit
DirList List matching files in subdirectories
File Save file and quit window
Save Save file
SaveAs Save file under a new file name
SetFileAttributes Set current file attributes
EditNextFile Edit next file on command line
RedrawScreen Redraw the screen
SizeWindow Change size of current window
SplitHorizontal Split current window horizontally
SplitVertical Split current window vertically
NextWindow Move to next window
PreviousWindow Move to previous window
ZoomWindow Make current window the maximum window size
NextHiddenWindow Switch to next hidden window
SetMark1 Set a file marker
SetMark2
SetMark3
GotoMark1 Move cursor to previously defined marker
GotoMark2
GotoMark3
RecordMacro Record keystrokes
PlayBack Play back keystrokes
SaveMacro Save macro to a file
LoadMacro Load macro from a file
ClearAllMacros Clear the macro buffer
Pause Pause a macro
Quit Quit current window and file and abandon changes